package com.chen.springcloud.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @ClassName
 * @Description:    @Configuration 相当于  -- spring application.xml
 * @Author:
 * @Date: Created in 21:59 2022/5/22
 */
@Configuration
public class ConfigBean {

    /**
     *  IRule（核心）：
     *
     *  AvailabilityFilteringRule   会先过滤掉，跳闸（挂掉、故障）的服务，对剩下的服务进行轮循
     *  RoundRobinRule  轮循 （默认）
     *  RandomRule  随机
     *  RetryRule   会先按照轮循获取服务，如果服务获取失败，则会在指定的时间内进行重试
     * @return
     */
    //配置负载均衡实现 RestTemplate
    @Bean
    @LoadBalanced   //Ribbon
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

}
